define(function(require, exports, module) {
	var $ = require('$');
	var formcc = require('form');
	var nav = require("bootstrap_nav");
	var bootbox = require("bootbox");
	var dtUtil = require('datatableutil');
	var store = require("store");
	var loader = require("./loader/loader");
	require("bootstrap-datetimepicker.min.css");
	require("bootstrap_commonrequire");
	require("moment");
	require("bootstrap_datetimepicker");
	require('select2.css');
	require('select2');
	exports.init = function(divId, data) {
		// 父节点，单选按钮的name值
		var parent = "";
		// 当前节点，单选按钮的value值
		var myId = "";
		// 父节点
		var parentId = 0;
		// 判断通过应用账号更改所有相对应的组织账户
		var isUpdate = "false";
		// 获取表单数据
		var isvrecord = {};
		// 使用后台要求的JSON格式的json串
		var ruleAccountCompany = {};
		// 用于提交保存用json
		var resultJson = "";
		if (data)
			isvrecord = data;
		// 加载表单模板和数据
		var Table = require("table");
		// 查询内容显示
		new Table({
			attrs : {
				id : "data_table2",
				isHovered : false,
				isStriped : true,
				isBordered : false
			},
			renderTo : "accountinfo_data_table2"
		});
		// 数据记录信息显示区
		var isvinfo_data_table = $('#data_table2').dataTable(
			{
				"sDom" : "<'hidden'<'span6'l><'hidden'f>r>t<'row-fluid'<'span6'i><'span6'p>>",
				"bJQueryUI" : false,
				"oLanguage" : {
					"sUrl" : "/business/js/common/table/src/lang/dataTable.cn.txt"
				},
				"sPaginationType" : "bootstrap", // 分页自带两种样式，full_numbers和two_button(默认)
				'bPaginate' : false, // 是否分页
				"bProcessing" : false, // 当datatable获取数据时候是否显示正在处理提示信息。
				"bServerSide" : false, // 指定服务器端分页
				"bDeferRender" : true,// bServerSide,bProcessing,bPaginate均为false
				"bFilter" : true,
				"bSort" : false,
				"bInfo" : false,// 不显示“当前显示 1 到 8 条，共 8 条记录”这句话
				"sAjaxSource" : "/appExtend/queryRuleByAccountId.do?app_key="+isvrecord.app_key+"&cust_account="+isvrecord.cust_account, 
				"iDisplayLength" : DATATABLES_CONFIG.iDisplayLength.DEFAULT, // 默认分页的每页记录数
				"fnServerData" : function(sSource, aoData,fnCallback, oSettings) {
					var queryparam = dtUtil.convert_aoData(aoData);
					// 添加自己的额外参数
					oSettings.jqXHR = $.ajax({
						"dataType" : 'json',
						"contentType" : "application/json;charset=UTF-8",
						"type" : "GET",
						"url" : sSource,
						"data" : queryparam, // 将请求数据转换为后台要求的JSON格式
						"success" : function(json) {
							if (json.flag == '000000') {
								ruleAccountCompany = json;
								dtUtil.successCallback(json, aoData,fnCallback);
								// 首先获取#data_table2中的内容，放在#div_input_tmp中；
								var div_input_tmp = $("#data_table2").parent().html();
								// 然后清除div内容，这样#data_table2中的内容为空；
								$("#data_table2").parent().empty();
								// 最后在#div_input中显示#div_input_tmp的内容
								$("#div_input").parent().parent().html(div_input_tmp);
								$("#data_table2 tbody").on("click", "tr>td>a.btn", function(e) {
					            	  var rowNode = this.parentNode.parentNode;
					            	  var typeId=$(rowNode).find('b:first').html();
					            	  app_key=isvrecord.app_key;
					            	  cust_account=isvrecord.cust_account;
					            	  bootbox.confirm("确定清除所选规则吗？", function(YesOrNo)
					                  {
					            		  if (YesOrNo)//确定后逻辑
					                     {
					            			  loader.loading("正在提交，请稍等……");
							            	  $.ajax({
							            		  url : "/appExtend/deleteRuleAccouunt.do",
							            		  type : "POST",
							            		  dataType : "json",
							            		  data:{
							            			  'app_key':app_key,
							            			  'cust_account':cust_account,
							            			  'type':typeId
							            		  },
							            		  async : false,
												  success : function(json) {
														if (json.flag == '000000') {
															bootbox.alertTimeout("清除规则设置成功！");
															loader.noloading();
															nav.toPageView("admin/accountcompanyinfo.html");
														} else {
															oauth2Relogin();
														}
												  },
												  error : function() {
														loader.noloading();
														bootbox.alertTimeout("网络请求失败，请重试！");
												  }
							            	  }); 
					                     }
					                  });
					            	  
					           });
							} else {
								oauth2Relogin();
							}
						}
					});
				},
				"aoColumns" : [
						{
							"sTitle" : "id",
							"bSortable" : false,
							"mData" : "id",
							"bVisible" : false,
							"mRender" : function(data, status, full) {
								myId = data;
								return myId;
							}
						},
						{
							"sTitle" : "父节点",
							"bSortable" : false,
							"mData" : "parent_id",
							"bVisible" : false,
							"mRender" : function(data, status, full) {
								if (data != null) {
									parentId = data;
									if (parentId == -1) {
										parent = "";
									} else {
										parent = parentId + "";
									}
								} else {
									parentId = -1;
								}
								return parentId;
							}
						},
						{
							"sTitle" : "能力标识",
							"bSortable" : false,
							"mData" : "type",
							"mRender" : function(data, status, full) {
								var strType = data;
								if (parentId == -1) {
									return '<h4><b>' + strType+ '</b></h4>';
								} else {
									return strType;
								}
							}
						},
						{
							"sTitle" : "能力名称",
							"bSortable" : false,
							"mData" : "names",
							"mRender" : function(data, status, full) {
								var strName = data;
								if (parentId == -1) {
									return '<h4><b>' + strName+ '</b></h4>';
								} else {
									return strName;
								}
							}
						},
						{
							"sTitle" : "设为默认使用",
							"bSortable" : false,
							"mData" : "default_using",
							"mRender" : function(data, status, full) {
								if (data != null && parentId != -1) {
									// 如果数据库default_using为yes，则按钮为选中状态；否则为非选中状态
									if (data == "yes") {
										return '<input name="'+ parent+ '" class="only-checkbox tableCheckbox" style="width:85px;" type="radio" value="'+ myId+ '" checked />';
									} else {
										return '<input name="'+ parent+ '" class="only-checkbox tableCheckbox" style="width:85px;" type="radio" value="'+ myId + '" />';
									}
								} else {
									return "<a href='javascript:void(0); ' class='btn '><span>清除设置</span></a>";
								}
							}
						} ],
				"fnDrawCallback" : function(oSettings) {
					// 表格绘制完成后，去除width属性，使表格可缩放
					$('#' + oSettings.sTableId).css("width", "");
				}
			});
		new formcc(
			{
				attrs : {
					title : "能力计费规则编辑",
					spansize : 'span12',
					id : "accountrecordform",
					items : [ {
						isText : true,
						label : "账号名称",
						id : 'acc_name',
						name : 'acc_name',
						type : "text",
						style : "width:50%",
						readonly : true,
						value : isvrecord.cust_name,
						validations : {
							// 将这个字段改成非必须填写的了
							required : false,
							maxlength : 50
						}
					}, {
						isText : true,
						label : "ISV",
						id : 'isv_name',
						name : 'isv_name',
						type : "text",
						style : "width:50%",
						readonly : true,
						value : isvrecord.isv_name,
						validations : {
							required : true,
							maxlength : 50
						}
					}, {
						isText : true,
						label : "应用",
						id : 'app_name',
						name : 'app_name',
						type : "text",
						style : "width:50%",
						readonly : true,
						value : isvrecord.app_name,
						validations : {
							required : true,
							maxlength : 50
						}
					}, {
						isText : true,
						label : "账号标识",
						id : 'identifier',
						name : 'identifier',
						type : "text",
						style : "width:50%",
						readonly : true,
						value : isvrecord.cust_account,
						validations : {
							required : true,
							maxlength : 50
						}
					}, {
						isText : true,
						label : "内容",
						id : 'div_input',
						name : 'div_input',
						type : "text",
					} ],
	
					buttons : [ {
						text : "保存",
						id : "btn_save",
						type : "submit",
						style : "btn btn-contrast",
						icon : "save",
					}, {
						text : "取消",
						id : "btn_cancel",
						style : "btn",
						type : "button",
						icon : "undo",
					} ]
	
				},
				renderTo : divId,
				afterRender : function() {
					var theme = require('bootstrap_theme');
					theme.setValidateForm($("#accountrecordform"),
					function() {
						// 判断输入框中的内容是否符合正则表达式；是则添加一个true，否则添加一个false
						var flags = "";
						// 获取拼接成json串（data、flag、desc）中的data属性
						var data = ruleAccountCompany.data;
						// 获取data中的items属性
						var items = data.items;
						// 用来保存相同name属性而不同value的input输入框的Array数组
						var valArr = new Array;
						// 单选按钮，设置default_using的值
						var radioUsingArr = new Array;
						// 用于判断是否为第一条数据
						var num = 0;
						var resultJson="";
						for (var i = 0; i < items.length; i++) {
							// items需要分别获取其属性值
							var bean = items[i];
							if (bean.menu_type == "types") {
								continue;
							} else {
								// 分别获取每个类型为radio的单选按钮的选中事件
								if ($("input[type='radio']").get(num).checked) {
									radioUsingArr[num] = "yes";
								} else {
									radioUsingArr[num] = "no";
								}
								var formdata = {
									app_key : isvrecord.app_key,
				                    rule_id : bean.id,
				                    account_type : bean.type,
				                    cust_account:isvrecord.cust_account,
				                    rule_names : bean.names,
				                    periphery_code : isvrecord.periphery_code,
				                    default_using : radioUsingArr[num]
								};
								if(radioUsingArr[num] == "yes"){
				                  	  if(resultJson==""){
				                  		 resultJson = "[" + JSON.stringify(formdata);
				                      }else{
				                         resultJson = resultJson + "," + JSON.stringify(formdata);
				                      }
				                }
								
								num = num + 1;
								
							}
						}
						resultJson = resultJson + "]";
						loader.loading("正在提交，请稍等……");
						$.ajax({
							url : "/appExtend/doRuleAccouuntInsert.do?isUpdate=" + isUpdate,// GLOBAL.URL.ADMIN_RETURNLICENSECARRIER,
							dataType : "json",
							data : "data="+ resultJson,
							type : "POST",
							async : false,
							success : function(json) {
								if (json.flag == '000000') {
									nav.toPageView("admin/accountcompanyinfo.html");
									loader.noloading();
								} else {
									oauth2Relogin();
								}
							},
							error : function() {
								loader.noloading();
								bootbox.alertTimeout("网络请求失败，请重试！");
							}
						});
					});
					$('#btn_cancel').on('click', function() {
						// 点击取消时，防止出现#data_table2中内容为空，所以将其上级内容置空一下
						$("#data_table2").parent().empty();
						$('#accountinfo_data_table_edit').hide();
						$('#accountinfo_data_table').show();
						$('#accountinfo_data_table2').hide();
						$("#accountForm").show();
						$("#queryAreaId").show();
					});
	
				}
			});
	};

});
